package pro.shushi.pamirs.meta.enmu;

import pro.shushi.pamirs.meta.annotation.Errors;
import pro.shushi.pamirs.meta.common.enmu.ExpBaseEnum;
import pro.shushi.pamirs.meta.common.enmu.IEnum;

@Errors(displayName = "系统模型错误枚举")
public enum MetaExpEnumerate implements ExpBaseEnum, IEnum<Integer> {

    SYSTEM_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001000, "系统异常"),
    BASE_IO_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001001, "文件读取异常"),
    BASE_CLASS_NOT_FOUNT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001002, "类配置文件不存在"),
    BASE_CLASS_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001003, "类配置文件错误"),
    BASE_ENUM_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001004, "枚举配置文件错误"),
    BASE_FIELD_TYPE_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001005, "模型字段类型错误"),
    BASE_FIELD_LTTYPE_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001006, "模型字段类型错误"),
    BASE_FIELD_TCTYPE_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001007, "模型字段类型错误"),
    BASE_FIELD_TCTYPE_LTYPE_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001008, "模型字段类型错误"),
    BASE_FIELD_NOT_ENUM_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001009, "枚举字段类型错误"),
    BASE_CONVERT_ENUM_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001010, "枚举转换错误"),
    BASE_ENUM_TYPE_ERROR_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001011, "枚举转换错误，未实现IEnum接口"),
    BASE_ERROR_ENUM_TYPE_ERROR_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001012, "错误枚举转换错误，未实现IEnum接口"),
    BASE_REFERENCE_MODEL_DEPENDENCY_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001013, "关联模型错误，请检查字段配置或模块依赖"),
    BASE_ERRORS_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001014, "错误枚举类型配置错误"),
    BASE_FIELD_ENUM_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001015, "枚举类型配置错误"),
    BASE_ENUM_CLASS_IS_NOT_EXISTS_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001016, "枚举类型错误"),
    BASE_ERROR_ENUM_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001017, "错误枚举配置文件错误"),
    BASE_CLASS_IS_NOT_EXISTS_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001018, "类型错误"),
    BASE_ARGUMENT_TYPE_ERROR_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001019, "参数类型错误"),
    BASE_NO_SUPPORT_LONG_POLLING(ERROR_TYPE.SYSTEM_ERROR, 10001020, "不支持长轮询"),
    BASE_FUNCTION_IS_NOT_EXISTS_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001021, "函数不存在"),
    BASE_LIST_PK_OR_UNIQUE_KEY_VALUE_INVALID_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001022, "记录列表主键或唯一值字段为空"),
    BASE_DATE_FORMAT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001023, "时间格式化错误"),
    BASE_EXPRESSION_JAVA_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001024, "处理表达式错误"),
    BASE_FETCH_REFERENCE_MODEL_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001025, "获取关联模型错误"),
    BASE_FETCH_METHOD_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001026, "获取方法错误"),
    BASE_FETCH_MODEL_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001027, "获取模型错误"),
    BASE_FETCH_DICTIONARY_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001028, "获取数据字典错误"),
    BASE_UNIQUE_KEY_VALUE_INVALID_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001029, "唯一值字段为空"),
    BASE_LIST_UNIQUE_KEY_VALUE_INVALID_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001030, "记录列表唯一值字段为空"),
    BASE_OBJ_UNIQUE_KEY_VALUE_INVALID_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001031, "记录唯一值字段为空"),
    BASE_PK_VALUE_INVALID_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001032, "主键值为空"),
    BASE_LIST_PK_VALUE_INVALID_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001033, "记录列表主键值为空"),
    BASE_EQUAL_PK_CONFIG_IS_NOT_EXISTS_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001034, "判断主键值，主键配置不存在"),
    BASE_PK_CONFIG_IS_NOT_EXISTS_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001035, "主键配置不存在"),
    BASE_UN_SUPPORT_DATA_TYPE_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001036, "不支持的数据类型"),
    BASE_INT_FORMAT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001037, "数字格式错误"),
    BASE_LONG_FORMAT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001038, "数字格式错误"),
    BASE_DOUBLE_FORMAT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001039, "数字格式错误"),
    BASE_FLOAT_FORMAT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001040, "数字格式错误"),
    BASE_PARSE_INT_FORMAT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001041, "数字格式错误"),
    BASE_PARSE_LONG_FORMAT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001042, "数字格式错误"),
    BASE_PARSE_DOUBLE_FORMAT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001043, "数字格式错误"),
    BASE_PARSE_FLOAT_FORMAT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001044, "数字格式错误"),
    BASE_PARSE_BIG_DECIMAL_FORMAT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001045, "数字格式错误"),
    BASE_LIST_IS_UN_SUPPORT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001046, "不支持列表操作"),
    BASE_MODEL_CONFIG_IS_NOT_EXISTS_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001047, "模型配置不存在"),
    BASE_STRING_FORMAT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001048, "文本格式错误"),
    BASE_STRING_FORMAT_2_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001049, "文本格式错误"),
    BASE_MODEL_CONFIG_IS_NOT_EXISTS_2_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001050, "模型配置不存在"),
    BASE_FETCH_MODEL_FIELD_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001051, "获取模型字段错误"),
    BASE_INSTANTIATION_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001052, "实例化错误"),
    BASE_ENUMERATE_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001053, "枚举处理错误"),
    BASE_LIST_IS_EMPTY_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001054, "列表操作不允许为空"),
    BASE_CACHE_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10001055, "缓存异常");

    private ERROR_TYPE type;

    private int code;

    private String msg;

    MetaExpEnumerate(ERROR_TYPE type, int code, String msg) {
        this.type = type;
        this.code = code;
        this.msg = msg;
    }
}
